Page Index
77 一 生产环境部署(windows)
JL 于 2022-10-20 11:05:29 +08:00 修改了此页面
此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

输入图片说明
阿里云领取¥2000红包,服务器低至¥91.80/年

JooLun版本

  • V2.7.0+

请严格按照教程操作;不要自己改库名、改包名、改服务端口,教程上没有说的就不要动,这样出了问题我们才好给你排查,等你熟悉项目了再改也不迟;因自己改了教程之外的东西出了问题来咨询技术的,我们都不受理

环境准备(注意版本)

  • windows服务器一台带公网IP最低要求配置2核CPU+6G内存+5M带宽,具体看自己业务量;👍推荐服务器),禁止用虚拟机
  • MySql8MySql版本至少5.7或者5.7+,强烈推荐mysql8,建议安装在本机或同一局域网,否则可能会因为网络问题引起超时
  • Redis建议安装在本机或同一局域网,否则可能会因为网络问题引起超时
  • JDK8
  • nginx
  • 阿里OSS、七牛云、minio、腾讯cos 四选一
  • 域名一个
  • 给域名申请https证书
  • 申请好小程序一个
  • 申请好微信支付商户一个
  • 快递100key一个
  • 必须保证机器的外部网络是通的

后端部署

  • 服务器安装mysql8、redis自行百度

  • 导入数据库joolun/db

  • 修改hosts,以管理员的身份运行SwitchHosts!,添加如下配置假如你的mysql没在本机,把127.0.0.1换成实际ip就行了

    • hosts修改方法有多种,推荐使用SwitchHosts!工具,其他方法请自行百度
    • 特别说明请一定要按此步骤配置hosts,禁止修改代码中配置成IP或localhost
    • hosts配置完成后,逐个ping base-xx 确认可以使用!
    # 本地开发环境 
    127.0.0.1 base-nacos 
    127.0.0.1 base-gateway 
    127.0.0.1 base-redis 
    127.0.0.1 base-mysql
    

  • 再用数据库工具直接连base-mysql,看能否连接上MySQL,确保hosts成功修改

  • 用idea打包

    先在Maven操作界面找到项目的root主目录下的Lifecycle,点击clean,clean完成后点击install,如下图

  • 打包完成后,将整个joolun主目录上传到服务器

  • 修改nacos配置文件中的数据库账号密码joolun/server/nacos-server/conf/application.properties

  • 双击joolun/server/nacos-server/bin/startup.cmd启动nacos,nacos要一直运行不要关了Mac或其他系统请查看nacos官网

  • nacos启动成功后,浏览器中打开http://base-nacos:8848/nacos/index.html 账号密码nacos/nacos生产环境记得修改初始密码,如访问不了检查下防火墙是否开放了8848端口

  • nacos中修改相关密码

    application-dev.yml修改redis密码

    base-auth-dev.yml、base-codegen-dev.yml、base-upms-admin-dev.yml、base-weixin-admin-dev.yml、base-mall-admin-dev.yml修改mysql账号、密码,将root换成自己的账号密码

    注意冒号后面要带一个空格

  • 商城版还需修改回调地址、快递100授权码等配置base-mall-admin-dev.yml;回调地址为网关服务gateway默认端口9999地址

    回调地址要外网能访问,不然收不到支付结果、退款结果、物流信息等,快递100的授权码自行申请

  • 注意用windows部署需要把nacos配置中的所有中文全部删掉,不然启动会报错

    application-dev.yml、base-auth-dev.yml、base-codegen-dev.yml、base-upms-admin-dev.yml、base-weixin-admin-dev.yml、base-mall-admin-dev.yml所有的配置文件中的中文手动删掉,不然启动会报错

  • 打开cmd窗口cd到joolun主目录,运行jar包

    java -Xms128m -Xmx512m -jar base-gateway/target/base-gateway.jar >base-gateway.out
    

    注意启服务的cmd窗口不能关闭

  • 启动后可以查看相应服务的日志文件(服务名.out,看是否有报错

  • 重新打开新的cmd窗口接着运行其他服务,一个服务一个窗口,其他服务运动代码如下

    java -Xms128m -Xmx512m -jar base-auth/target/base-auth.jar >base-auth.out 
    java -Xms128m -Xmx256m -jar base-upms/base-upms-admin/target/base-upms-admin.jar >base-upms.out
    java -Xms128m -Xmx512m -jar base-weixin/base-weixin-admin/target/base-weixin-admin.jar >base-weixin-admin.out
    java -Xms128m -Xmx512m -jar base-mall/base-mall-admin/target/base-mall-admin.jar >base-mall-admin.out
    java -Xms128m -Xmx256m -jar base-codegen/target/base-codegen.jar >base-codegen.out
    
  • 如要停止某个服务,关闭相应cmd窗口即可

  • 按顺序启动nacos -> base-gateway -> base-auth -> base-upms -> base-weixin -> base-mall

  • 查看每个服务的.out日志文件,看是否有报错,没有报错说明服务启动成功,如有报错请根据错误信息排查问题

前端部署

  • 安装nginx自行百度

  • 用WebStorm打包

    npm install --registry=https://registry.npm.taobao.org

    npm run build

  • 上传打包后的dist文件夹到E:\JL\all\project\joolun-wx\joolun-ui\目录下

  • 到你的域名服务商平台将后台需要使用的域名对应下面nginx中要配置的server_name解析指向到你服务器的公网IP,不同服务商平台操作不同这里不做详细说明,不懂的可以联系自己的服务商或百度

  • 修改nginx配置

    不同版本的nginx配置文件有所不同根据自己实际版本操作

    在http {}标签中增加一个80的server,server_name换成自己的域名,代码如下

    server {
            listen       80;
            server_name  demo.joolun.com;
    
            # 打包好的dist目录
            root E:/JL/all/project/joolun-wx/joolun-ui/dist/;
    
            location ~* ^/(auth|code|admin|gen|weixin|mall|doc|webjars|swagger-resources|upms) {
               proxy_pass http://127.0.0.1:9999;
               #proxy_set_header Host $http_host;
               proxy_connect_timeout 15s;
               proxy_send_timeout 300s;
               proxy_read_timeout 300s;
               proxy_set_header X-Real-IP $remote_addr;
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
            if ($request_uri ~ "/actuator"){
                return 403;
            }
        }
    
  • 启动nginx

  • 后台访问

    浏览器中输入配置的server_name域名即可访问后台了

小程序端部署

  • 由于小程序官方规定所有请求必需是https协议,所以我们要开启https,通过nginx实现

    1. 申请ssl证书,推荐阿里云的,下载nginx类型的证书

    2. 修改nginx配置

      在http {}标签中增加一个443 ssl的server,和上面的80server并列,代码如下

      443做为https端口,server_name换成自己的域名

      server {
              listen       443 ssl;
              server_name  demo.joolun.com;
              #证书的路径
              ssl_certificate      E:/JL/ssl/2881620_demo.joolun.com.pem;
              ssl_certificate_key  E:/JL/ssl/2881620_demo.joolun.com.key;
      
              ssl_session_cache    shared:SSL:1m;
              ssl_session_timeout  5m;
      
              ssl_ciphers  HIGH:!aNULL:!MD5;
              ssl_prefer_server_ciphers  on;
      
              # 打包好的dist目录文件目录
              root E:/JL/all/project/joolun-wx/joolun-ui/dist/;
              location ~* ^/(auth|code|admin|gen|weixin|mall|doc|webjars|swagger-resources|upms) {
                 proxy_pass http://127.0.0.1:9999;
                 proxy_connect_timeout 15s;
                 proxy_send_timeout 300s;
                 proxy_read_timeout 300s;
                 proxy_set_header X-Real-IP $remote_addr;
                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              }
          }
      
  • 设置服务器域名(https://mp.weixin.qq.com

    将你nginx中https配置的域名添加到域名列表中

  • 修改配置文件joolun-ma/config/env.js中的服务器地址,改为上面的生产环境地址,必须https协议

  • 关闭微信开发者工具的不校验合法域名(把勾去掉)

  • 编译小程序

    看小程序能否成功加载出数据

  • 小程序成功加载出数据后即可上传小程序代码

  • 上传成功后登录微信公众平台,配置隐私协议,提交审核

  • 待微信官方审核通过后,发布代码

  • 商城版需要将redis的key过期推送功能打开,否则订单无法自动取消自行百度redis的key过期推送怎么打开